function dotarray = digui(sparray,divides)
    len=numel(sparray);
    worksetindex=combntns(1:len,divides(1));
    dotarray=cell(size(worksetindex,1),1);
    for i=1:size(worksetindex,1)
        cross=intersect(sparray(worksetindex(i,:)));
        if cross.NumRegions==0
            continue;
        end
        if numel(divides)==1
            dotarray{i}={cross.Vertices(nearestvertex(cross,0,0),:)};
            continue;
        end
        nextarray=sparray;
        for j=fliplr(worksetindex(i,:))
            nextarray(j)=[];
        end
        laterdotarray=digui(nextarray,divides(2:end));
        if numel(laterdotarray)==0
            continue;
        end
        thisdot=cross.Vertices(nearestvertex(cross,0,0),:);
        dotarray{i}=cellfun(@(x) [thisdot;x],laterdotarray,'UniformOutput',0);
    end
    dotarray=reshape(vertcat(dotarray{:}),[],1);
end